package com.lanbu.chat.domain.dto;

import java.util.Map;

public class FastGptResponse {
    private int code;
    private String statusText;
    private String message;
    private Data data;

    // Getters and Setters
    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getStatusText() {
        return statusText;
    }

    public void setStatusText(String statusText) {
        this.statusText = statusText;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Data getData() {
        return data;
    }

    public void setData(Data data) {
        this.data = data;
    }

    public class Data {
        private User user;
        private String token;

        // Getters and Setters
        public User getUser() {
            return user;
        }

        public void setUser(User user) {
            this.user = user;
        }

        public String getToken() {
            return token;
        }

        public void setToken(String token) {
            this.token = token;
        }

        public class User {
            private String _id;
            private String username;
            private String avatar;
            private String timezone;
            private int promotionRate;
            private Object openaiAccount;
            private Team team;

            // Getters and Setters
            public String get_id() {
                return _id;
            }

            public void set_id(String _id) {
                this._id = _id;
            }

            public String getUsername() {
                return username;
            }

            public void setUsername(String username) {
                this.username = username;
            }

            public String getAvatar() {
                return avatar;
            }

            public void setAvatar(String avatar) {
                this.avatar = avatar;
            }

            public String getTimezone() {
                return timezone;
            }

            public void setTimezone(String timezone) {
                this.timezone = timezone;
            }

            public int getPromotionRate() {
                return promotionRate;
            }

            public void setPromotionRate(int promotionRate) {
                this.promotionRate = promotionRate;
            }

            public Object getOpenaiAccount() {
                return openaiAccount;
            }

            public void setOpenaiAccount(Object openaiAccount) {
                this.openaiAccount = openaiAccount;
            }

            public Team getTeam() {
                return team;
            }

            public void setTeam(Team team) {
                this.team = team;
            }

            public class Team {
                private String userId;
                private String teamId;
                private String teamName;
                private String memberName;
                private String avatar;
                private int balance;
                private String tmbId;
                private String role;
                private String status;
                private boolean defaultTeam;
                private Map<String, Object> lafAccount;
                private Permission permission;

                // Getters and Setters
                public String getUserId() {
                    return userId;
                }

                public void setUserId(String userId) {
                    this.userId = userId;
                }

                public String getTeamId() {
                    return teamId;
                }

                public void setTeamId(String teamId) {
                    this.teamId = teamId;
                }

                public String getTeamName() {
                    return teamName;
                }

                public void setTeamName(String teamName) {
                    this.teamName = teamName;
                }

                public String getMemberName() {
                    return memberName;
                }

                public void setMemberName(String memberName) {
                    this.memberName = memberName;
                }

                public String getAvatar() {
                    return avatar;
                }

                public void setAvatar(String avatar) {
                    this.avatar = avatar;
                }

                public int getBalance() {
                    return balance;
                }

                public void setBalance(int balance) {
                    this.balance = balance;
                }

                public String getTmbId() {
                    return tmbId;
                }

                public void setTmbId(String tmbId) {
                    this.tmbId = tmbId;
                }

                public String getRole() {
                    return role;
                }

                public void setRole(String role) {
                    this.role = role;
                }

                public String getStatus() {
                    return status;
                }

                public void setStatus(String status) {
                    this.status = status;
                }

                public boolean isDefaultTeam() {
                    return defaultTeam;
                }

                public void setDefaultTeam(boolean defaultTeam) {
                    this.defaultTeam = defaultTeam;
                }

                public Map<String, Object> getLafAccount() {
                    return lafAccount;
                }

                public void setLafAccount(Map<String, Object> lafAccount) {
                    this.lafAccount = lafAccount;
                }

                public Permission getPermission() {
                    return permission;
                }

                public void setPermission(Permission permission) {
                    this.permission = permission;
                }

                public class Permission {
                    private long value;
                    private boolean isOwner;
                    private boolean hasManagePer;
                    private boolean hasWritePer;
                    private boolean hasReadPer;

                    // Getters and Setters
                    public long getValue() {
                        return value;
                    }

                    public void setValue(long value) {
                        this.value = value;
                    }

                    public boolean isOwner() {
                        return isOwner;
                    }

                    public void setOwner(boolean owner) {
                        isOwner = owner;
                    }

                    public boolean isHasManagePer() {
                        return hasManagePer;
                    }

                    public void setHasManagePer(boolean hasManagePer) {
                        this.hasManagePer = hasManagePer;
                    }

                    public boolean isHasWritePer() {
                        return hasWritePer;
                    }

                    public void setHasWritePer(boolean hasWritePer) {
                        this.hasWritePer = hasWritePer;
                    }

                    public boolean isHasReadPer() {
                        return hasReadPer;
                    }

                    public void setHasReadPer(boolean hasReadPer) {
                        this.hasReadPer = hasReadPer;
                    }
                }
            }
        }
    }
}
